CREATE TABLE EM_ES_Orden_Examen_Medico (
	codOrdenExamenMedico INT NOT NULL,
	categoriaOrden CHAR ( 1 ) NOT NULL,
	estadoOrden CHAR ( 1 ) NOT NULL,
	/*Normal
	Prioridad*/
	tipoOrden CHAR ( 1 ) NOT NULL,
	fechaOrden DATETIME NOT NULL,
	fechImpresion DATETIME NOT NULL,
	observacionOrden VARCHAR ( 100 ) NOT NULL,
	CodPaciente INT NOT NULL,
	codMedico INT,
	CONSTRAINT PK_EM_ES_Orden_Examen_Medico310 PRIMARY KEY NONCLUSTERED (codOrdenExamenMedico)
	)
GO
CREATE INDEX TC_EM_ES_Orden_Examen_Medico648 ON EM_ES_Orden_Examen_Medico (CodPaciente )
GO
CREATE INDEX TC_EM_ES_Orden_Examen_Medico649 ON EM_ES_Orden_Examen_Medico (codMedico )
GO
CREATE TABLE EM_ES_Resultado_Detalle_Examen_Medico (
	descrValorResultado VARCHAR ( 50 ) NOT NULL,
	observacion VARCHAR ( 100 ) NOT NULL,
	codResultado INT NOT NULL,
	CONSTRAINT PK_EM_ES_Resultado_Detalle_Examen_Medico328 PRIMARY KEY NONCLUSTERED (codResultado)
	)
GO
CREATE INDEX TC_EM_ES_Resultado_Detalle_Examen_Medico654 ON EM_ES_Resultado_Detalle_Examen_Medico (codResultado )
GO
CREATE TABLE EM_ES_Programacion_Recurso (
	codProgramacionRecurso INT NOT NULL,
	PeriodoProgramacion VARCHAR ( 6 ) NOT NULL,
	observacionProgramacion VARCHAR ( 100 ) NOT NULL,
	CONSTRAINT PK_EM_ES_Programacion_Recurso314 PRIMARY KEY NONCLUSTERED (codProgramacionRecurso)
	)
GO
CREATE TABLE AD_ES_Solicitud_de_Afiliacion (
	codSolicAfiliacion INT NOT NULL,
	fechaSolicAfiliacion DATETIME NOT NULL,
	descripcionSolicAfiliacion VARCHAR ( 100 ) NOT NULL,
	CONSTRAINT PK_AD_ES_Solicitud_de_Afiliacion319 PRIMARY KEY NONCLUSTERED (codSolicAfiliacion)
	)
GO
CREATE TABLE EM_ES_MuestraOrdenExamen (
	codMuestra INT NOT NULL,
	fechaRecepToma DATETIME NOT NULL,
	HoraRecepToma CHAR ( 10 ) NOT NULL,
	Observacion VARCHAR ( 100 ) NOT NULL,
	estadoMuestra CHAR ( 1 ) NOT NULL,
	codOrdenExamenMedico INT NOT NULL,
	CONSTRAINT PK_EM_ES_MuestraOrdenExamen311 PRIMARY KEY NONCLUSTERED (codMuestra),
	CONSTRAINT TC_EM_ES_MuestraOrdenExamen622 UNIQUE NONCLUSTERED (codOrdenExamenMedico)
	)
GO
CREATE INDEX TC_EM_ES_MuestraOrdenExamen657 ON EM_ES_MuestraOrdenExamen (codOrdenExamenMedico )
GO
CREATE TABLE EM_ES_Especialidad_Equipo (
	estadoEquipoEspecialidad CHAR ( 1 ) NOT NULL,
	codEquipo INT NOT NULL,
	codEspecialidad INT NOT NULL,
	CONSTRAINT PK_EM_ES_Especialidad_Equipo331 PRIMARY KEY NONCLUSTERED (codEquipo, codEspecialidad)
	)
GO
CREATE INDEX TC_EM_ES_Especialidad_Equipo634 ON EM_ES_Especialidad_Equipo (codEspecialidad )
GO
CREATE INDEX TC_EM_ES_Especialidad_Equipo633 ON EM_ES_Especialidad_Equipo (codEquipo )
GO
CREATE TABLE AT_ES_Especialidad_Medica (
	EstadoMedicoEsp VARCHAR ( 255 ) NOT NULL,
	codMedico INT NOT NULL,
	codEspecialidad INT NOT NULL,
	CONSTRAINT PK_AT_ES_Especialidad_Medica330 PRIMARY KEY NONCLUSTERED (codMedico, codEspecialidad)
	)
GO
CREATE INDEX TC_AT_ES_Especialidad_Medica641 ON AT_ES_Especialidad_Medica (codEspecialidad )
GO
CREATE INDEX TC_AT_ES_Especialidad_Medica640 ON AT_ES_Especialidad_Medica (codMedico )
GO
CREATE TABLE AT_ES_Medico (
	codMedico INT NOT NULL,
	nomMedico VARCHAR ( 50 ) NOT NULL,
	apePaternoMedico VARCHAR ( 50 ) NOT NULL,
	apeMaternoMedico VARCHAR ( 50 ) NOT NULL,
	sexoMedico CHAR ( 1 ) NOT NULL,
	fecNacMedico DATETIME NOT NULL,
	codCMPMedico VARCHAR ( 10 ) NOT NULL,
	dniMedico VARCHAR ( 12 ) NOT NULL,
	CONSTRAINT PK_AT_ES_Medico322 PRIMARY KEY NONCLUSTERED (codMedico)
	)
GO
CREATE TABLE EM_ES_Turno (
	codTurno INT NOT NULL,
	horaInicioTurno VARCHAR ( 20 ) NOT NULL,
	horaFinTurno VARCHAR ( 20 ) NOT NULL,
	CONSTRAINT PK_EM_ES_Turno313 PRIMARY KEY NONCLUSTERED (codTurno)
	)
GO
CREATE TABLE EM_ES_Programacion_Recurso_Detalle (
	estadoProgramacion CHAR ( 1 ) NOT NULL,
	codDisponibilidad INT NOT NULL,
	codTurno INT NOT NULL,
	codTecnico INT NOT NULL,
	codProgramacionRecurso INT NOT NULL,
	codEquipo INT NOT NULL,
	codEspecialidad INT NOT NULL,
	codMedico INT NOT NULL,
	AT_ES_Especialidad_Medica_codEspecialidad INT NOT NULL,
	CONSTRAINT PK_EM_ES_Programacion_Recurso_Detalle327 PRIMARY KEY NONCLUSTERED (codProgramacionRecurso)
	)
GO
CREATE INDEX TC_EM_ES_Programacion_Recurso_Detalle653 ON EM_ES_Programacion_Recurso_Detalle (codMedico , AT_ES_Especialidad_Medica_codEspecialidad )
GO
CREATE INDEX TC_EM_ES_Programacion_Recurso_Detalle650 ON EM_ES_Programacion_Recurso_Detalle (codEquipo , codEspecialidad )
GO
CREATE INDEX TC_EM_ES_Programacion_Recurso_Detalle652 ON EM_ES_Programacion_Recurso_Detalle (codDisponibilidad , codTurno , codTecnico )
GO
CREATE INDEX TC_EM_ES_Programacion_Recurso_Detalle651 ON EM_ES_Programacion_Recurso_Detalle (codProgramacionRecurso )
GO
CREATE TABLE IS_ES_Equipamiento (
	codEquipo INT NOT NULL,
	NomEquipo VARCHAR ( 40 ) NOT NULL,
	nroserie VARCHAR ( 20 ) NOT NULL,
	Observacion VARCHAR ( 100 ) NOT NULL,
	CONSTRAINT PK_IS_ES_Equipamiento317 PRIMARY KEY NONCLUSTERED (codEquipo)
	)
GO
CREATE TABLE PF_ES_Servicio (
	codGrupoServicio VARCHAR ( 255 ) NOT NULL,
	codServicio VARCHAR ( 15 ) NOT NULL,
	descrServicio VARCHAR ( 100 ) NOT NULL,
	numUnidades REAL NOT NULL,
	obserServicio VARCHAR ( 255 ) NOT NULL,
	fechRegistro DATETIME NOT NULL,
	fechEstado DATETIME NOT NULL,
	codReqCartaGarantia BIT NOT NULL,
	codEstado CHAR ( 1 ) NOT NULL,
	fechCreacion DATETIME NOT NULL,
	fechModificacion DATETIME NOT NULL,
	codUsuarioCreacion VARCHAR ( 10 ) NOT NULL,
	codUsuarioModificacion VARCHAR ( 10 ) NOT NULL,
	/*Codigo CIE10*/
	codCIE10 VARCHAR ( 255 ) NOT NULL,
	CONSTRAINT TC_PF_ES_Servicio638 UNIQUE NONCLUSTERED (codCIE10),
	CONSTRAINT PK_PF_ES_Servicio320 PRIMARY KEY NONCLUSTERED (codGrupoServicio)
	)
GO
CREATE INDEX TC_PF_ES_Servicio662 ON PF_ES_Servicio (codCIE10 )
GO
CREATE TABLE EM_ES_Orden_Examen_Medico_Detalle (
	estadoDetalleExamen CHAR ( 1 ) NOT NULL,
	codOrdenExamenMedico INT NOT NULL,
	codGrupoServicio VARCHAR ( 255 ) NOT NULL,
	CONSTRAINT PK_EM_ES_Orden_Examen_Medico_Detalle329 PRIMARY KEY NONCLUSTERED (codOrdenExamenMedico)
	)
GO
CREATE INDEX TC_EM_ES_Orden_Examen_Medico_Detalle656 ON EM_ES_Orden_Examen_Medico_Detalle (codGrupoServicio )
GO
CREATE INDEX TC_EM_ES_Orden_Examen_Medico_Detalle655 ON EM_ES_Orden_Examen_Medico_Detalle (codOrdenExamenMedico )
GO
CREATE TABLE AT_ES_Especialidad (
	codEspecialidad INT NOT NULL,
	nombreEspecialidad VARCHAR ( 50 ) NOT NULL,
	CONSTRAINT PK_AT_ES_Especialidad323 PRIMARY KEY NONCLUSTERED (codEspecialidad)
	)
GO
CREATE TABLE EM_ES_Disponibilidad_Turno_Tecnico (
	codDisponibilidad INT NOT NULL,
	periodoDisponibilidad VARCHAR ( 10 ) NOT NULL,
	codTurno INT NOT NULL,
	codTecnico INT NOT NULL,
	CONSTRAINT PK_EM_ES_Disponibilidad_Turno_Tecnico312 PRIMARY KEY NONCLUSTERED (codDisponibilidad, codTurno, codTecnico)
	)
GO
CREATE INDEX TC_EM_ES_Disponibilidad_Turno_Tecnico630 ON EM_ES_Disponibilidad_Turno_Tecnico (codTurno )
GO
CREATE INDEX TC_EM_ES_Disponibilidad_Turno_Tecnico631 ON EM_ES_Disponibilidad_Turno_Tecnico (codTecnico )
GO
CREATE TABLE EM_ES_Examen_Medico_Detalle (
	codDetalleExamen INT NOT NULL,
	descrDetalleExamen VARCHAR ( 100 ) NOT NULL,
	valormaximoDetalle VARCHAR ( 20 ) NOT NULL,
	valorMinimoDetalle VARCHAR ( 20 ) NOT NULL,
	valorReferencial VARCHAR ( 20 ) NOT NULL,
	codTipoDetalleExamen INT NOT NULL,
	codGrupoServicio VARCHAR ( 255 ) NOT NULL,
	CONSTRAINT PK_EM_ES_Examen_Medico_Detalle316 PRIMARY KEY NONCLUSTERED (codGrupoServicio, codDetalleExamen)
	)
GO
CREATE INDEX TC_EM_ES_Examen_Medico_Detalle660 ON EM_ES_Examen_Medico_Detalle (codTipoDetalleExamen )
GO
CREATE INDEX TC_EM_ES_Examen_Medico_Detalle659 ON EM_ES_Examen_Medico_Detalle (codGrupoServicio )
GO
CREATE TABLE EM_ES_Tipo_Detalle_Examen (
	codTipoDetalleExamen INT NOT NULL,
	descrTipoDetalleExamen VARCHAR ( 100 ) NOT NULL,
	CONSTRAINT PK_EM_ES_Tipo_Detalle_Examen324 PRIMARY KEY NONCLUSTERED (codTipoDetalleExamen)
	)
GO
CREATE TABLE PF_ES_CIE10 (
	/*Codigo CIE10*/
	codCIE10 VARCHAR ( 255 ) NOT NULL,
	descrCIE10 VARCHAR ( 100 ) NOT NULL,
	fechCreacion DATETIME NOT NULL,
	fechModificacion DATETIME NOT NULL,
	codUsuarioCreacion VARCHAR ( 10 ) NOT NULL,
	codUsuarioModificacion VARCHAR ( 10 ) NOT NULL,
	CONSTRAINT PK_PF_ES_CIE10321 PRIMARY KEY NONCLUSTERED (codCIE10)
	)
GO
CREATE TABLE EM_ES_Tecnico (
	codTecnico INT NOT NULL,
	TipoEmpleaado CHAR ( 1 ) NOT NULL,
	nombreTecnico VARCHAR ( 50 ) NOT NULL,
	codMuestra INT,
	CONSTRAINT PK_EM_ES_Tecnico315 PRIMARY KEY NONCLUSTERED (codTecnico),
	CONSTRAINT TC_EM_ES_Tecnico627 UNIQUE NONCLUSTERED (codMuestra)
	)
GO
CREATE INDEX TC_EM_ES_Tecnico658 ON EM_ES_Tecnico (codMuestra )
GO
CREATE TABLE EM_ES_Examen_Medico (
	TipoExamen CHAR ( 1 ) NOT NULL,
	AutorizacionExamen BIT NOT NULL,
	codGrupoServicio VARCHAR ( 255 ) NOT NULL,
	CONSTRAINT PK_EM_ES_Examen_Medico332 PRIMARY KEY NONCLUSTERED (codGrupoServicio)
	)
GO
CREATE INDEX TC_EM_ES_Examen_Medico647 ON EM_ES_Examen_Medico (codGrupoServicio )
GO
CREATE TABLE AD_ES_paciente (
	CodPaciente INT NOT NULL,
	NombresPac VARCHAR ( 50 ) NOT NULL,
	ApellidoPaternoPac VARCHAR ( 50 ) NOT NULL,
	ApellidoMaternoPac VARCHAR ( 50 ) NOT NULL,
	DocIdentidadPac VARCHAR ( 14 ) NOT NULL,
	EstadoCivilPac CHAR ( 1 ) NOT NULL,
	NroHijosPac INT NOT NULL,
	FecNacimientoPac DATETIME NOT NULL,
	LugarNacimientoPac VARCHAR ( 50 ) NOT NULL,
	DireccionPac VARCHAR ( 50 ) NOT NULL,
	Telefono1Pac VARCHAR ( 20 ) NOT NULL,
	Celular1Pac VARCHAR ( 50 ) NOT NULL,
	Email1Pac VARCHAR ( 50 ) NOT NULL,
	EstadoPac CHAR ( 1 ) NOT NULL,
	FecCreacionPac DATETIME NOT NULL,
	FecModPac DATETIME NOT NULL,
	UsuarioModPac VARCHAR ( 10 ) NOT NULL,
	MotivoBajaPac VARCHAR ( 50 ) NOT NULL,
	codSolicAfiliacion INT,
	CONSTRAINT PK_AD_ES_paciente318 PRIMARY KEY NONCLUSTERED (CodPaciente)
	)
GO
CREATE INDEX TC_AD_ES_paciente661 ON AD_ES_paciente (codSolicAfiliacion )
GO
CREATE TABLE EM_ES_Resultado_Examen_Medico (
	codResultado INT NOT NULL,
	fechaResultado DATETIME NOT NULL,
	estadoResultado CHAR ( 1 ) NOT NULL,
	estadoEntrega CHAR ( 1 ) NOT NULL,
	codOrdenExamenMedico INT NOT NULL,
	CONSTRAINT PK_EM_ES_Resultado_Examen_Medico325 PRIMARY KEY NONCLUSTERED (codResultado),
	CONSTRAINT TC_EM_ES_Resultado_Examen_Medico624 UNIQUE NONCLUSTERED (codOrdenExamenMedico)
	)
GO
CREATE INDEX TC_EM_ES_Resultado_Examen_Medico663 ON EM_ES_Resultado_Examen_Medico (codOrdenExamenMedico )
GO
ALTER TABLE EM_ES_Tecnico ADD CONSTRAINT FK_EM_ES_Tecnico364 FOREIGN KEY (codMuestra) REFERENCES EM_ES_MuestraOrdenExamen (codMuestra) 
GO
ALTER TABLE EM_ES_Resultado_Detalle_Examen_Medico ADD CONSTRAINT FK_EM_ES_Resultado_Detalle_Examen_Medico379 FOREIGN KEY (codResultado) REFERENCES EM_ES_Resultado_Examen_Medico (codResultado) 
GO
ALTER TABLE AT_ES_Especialidad_Medica ADD CONSTRAINT FK_AT_ES_Especialidad_Medica377 FOREIGN KEY (codEspecialidad) REFERENCES AT_ES_Especialidad (codEspecialidad) 
GO
ALTER TABLE AT_ES_Especialidad_Medica ADD CONSTRAINT FK_AT_ES_Especialidad_Medica376 FOREIGN KEY (codMedico) REFERENCES AT_ES_Medico (codMedico) 
GO
ALTER TABLE EM_ES_Especialidad_Equipo ADD CONSTRAINT FK_EM_ES_Especialidad_Equipo370 FOREIGN KEY (codEquipo) REFERENCES IS_ES_Equipamiento (codEquipo) 
GO
ALTER TABLE EM_ES_Especialidad_Equipo ADD CONSTRAINT FK_EM_ES_Especialidad_Equipo371 FOREIGN KEY (codEspecialidad) REFERENCES AT_ES_Especialidad (codEspecialidad) 
GO
ALTER TABLE PF_ES_Servicio ADD CONSTRAINT FK_PF_ES_Servicio374 FOREIGN KEY (codCIE10) REFERENCES PF_ES_CIE10 (codCIE10) 
GO
ALTER TABLE EM_ES_Disponibilidad_Turno_Tecnico ADD CONSTRAINT FK_EM_ES_Disponibilidad_Turno_Tecnico368 FOREIGN KEY (codTecnico) REFERENCES EM_ES_Tecnico (codTecnico) 
GO
ALTER TABLE EM_ES_Disponibilidad_Turno_Tecnico ADD CONSTRAINT FK_EM_ES_Disponibilidad_Turno_Tecnico367 FOREIGN KEY (codTurno) REFERENCES EM_ES_Turno (codTurno) 
GO
ALTER TABLE EM_ES_Orden_Examen_Medico ADD CONSTRAINT FK_EM_ES_Orden_Examen_Medico372 FOREIGN KEY (CodPaciente) REFERENCES AD_ES_paciente (CodPaciente) 
GO
ALTER TABLE EM_ES_Orden_Examen_Medico ADD CONSTRAINT FK_EM_ES_Orden_Examen_Medico375 FOREIGN KEY (codMedico) REFERENCES AT_ES_Medico (codMedico) 
GO
ALTER TABLE EM_ES_Resultado_Examen_Medico ADD CONSTRAINT FK_EM_ES_Resultado_Examen_Medico362 FOREIGN KEY (codOrdenExamenMedico) REFERENCES EM_ES_Orden_Examen_Medico_Detalle (codOrdenExamenMedico) 
GO
ALTER TABLE AD_ES_paciente ADD CONSTRAINT FK_AD_ES_paciente373 FOREIGN KEY (codSolicAfiliacion) REFERENCES AD_ES_Solicitud_de_Afiliacion (codSolicAfiliacion) 
GO
ALTER TABLE EM_ES_MuestraOrdenExamen ADD CONSTRAINT FK_EM_ES_MuestraOrdenExamen361 FOREIGN KEY (codOrdenExamenMedico) REFERENCES EM_ES_Orden_Examen_Medico_Detalle (codOrdenExamenMedico) 
GO
ALTER TABLE EM_ES_Examen_Medico ADD CONSTRAINT FK_EM_ES_Examen_Medico382 FOREIGN KEY (codGrupoServicio) REFERENCES PF_ES_Servicio (codGrupoServicio) 
GO
ALTER TABLE EM_ES_Programacion_Recurso_Detalle ADD CONSTRAINT FK_EM_ES_Programacion_Recurso_Detalle366 FOREIGN KEY (codDisponibilidad, codTurno, codTecnico) REFERENCES EM_ES_Disponibilidad_Turno_Tecnico (codDisponibilidad, codTurno, codTecnico) 
GO
ALTER TABLE EM_ES_Programacion_Recurso_Detalle ADD CONSTRAINT FK_EM_ES_Programacion_Recurso_Detalle365 FOREIGN KEY (codEquipo, codEspecialidad) REFERENCES EM_ES_Especialidad_Equipo (codEquipo, codEspecialidad) 
GO
ALTER TABLE EM_ES_Programacion_Recurso_Detalle ADD CONSTRAINT FK_EM_ES_Programacion_Recurso_Detalle369 FOREIGN KEY (codProgramacionRecurso) REFERENCES EM_ES_Programacion_Recurso (codProgramacionRecurso) 
GO
ALTER TABLE EM_ES_Programacion_Recurso_Detalle ADD CONSTRAINT FK_EM_ES_Programacion_Recurso_Detalle363 FOREIGN KEY (codMedico, AT_ES_Especialidad_Medica_codEspecialidad) REFERENCES AT_ES_Especialidad_Medica (codMedico, codEspecialidad) 
GO
ALTER TABLE EM_ES_Orden_Examen_Medico_Detalle ADD CONSTRAINT FK_EM_ES_Orden_Examen_Medico_Detalle380 FOREIGN KEY (codGrupoServicio) REFERENCES EM_ES_Examen_Medico (codGrupoServicio) 
GO
ALTER TABLE EM_ES_Orden_Examen_Medico_Detalle ADD CONSTRAINT FK_EM_ES_Orden_Examen_Medico_Detalle360 FOREIGN KEY (codOrdenExamenMedico) REFERENCES EM_ES_Orden_Examen_Medico (codOrdenExamenMedico) 
GO
ALTER TABLE EM_ES_Examen_Medico_Detalle ADD CONSTRAINT FK_EM_ES_Examen_Medico_Detalle381 FOREIGN KEY (codGrupoServicio) REFERENCES EM_ES_Examen_Medico (codGrupoServicio) 
GO
ALTER TABLE EM_ES_Examen_Medico_Detalle ADD CONSTRAINT FK_EM_ES_Examen_Medico_Detalle378 FOREIGN KEY (codTipoDetalleExamen) REFERENCES EM_ES_Tipo_Detalle_Examen (codTipoDetalleExamen) 
GO

